package collection;

import java.util.Scanner;
import java.util.Vector;

import map.VideoTitle;

public class VectorVideoShop {
	
	public static void main(String[] args) {
		
		Vector videoStorage = new Vector();
		
		Scanner sc = new Scanner(System.in);
		
		while (true) {
			System.out.println("===== 메뉴를 선택하세요 =====");
			System.out.println("1. 비디오 등록");
			System.out.println("2. 비디오 검색");
			System.out.println("3. 전체 비디오 목록");
			System.out.println("4. 비디오 삭제 (인덱스로 삭제)");
			System.out.println("5. 비디오 삭제 (제목으로 검색해서 삭제)");
			System.out.println("0. 종료");
			System.out.println("=========================");
			System.out.print("메뉴: ");
			
			String menu = sc.nextLine();
			
			System.out.println();
			
			if (menu.equals("1")) {
				System.out.println("등록하실 비디오의 정보를 입력하세요.");
				System.out.print("제목: ");
				String title = sc.nextLine();
				System.out.print("장르: ");
				String genre = sc.nextLine();
				System.out.print("감독: ");
				String director = sc.nextLine();
				
				VideoTitle t = new VideoTitle();
				t.setTitle(title);
				t.setGenre(genre);
				t.setDirector(director);
				
				videoStorage.add(t);
			}
			else if (menu.equals("2")) {
				System.out.print("검색할 비디오의 제목: ");
				String title = sc.nextLine();
				for (int i = 0; i < videoStorage.size(); i++) {
					VideoTitle t = (VideoTitle) videoStorage.get(i);
					if (title.equals(t.getTitle())) {
						System.out.println("조회된 비디오 정보 >>>");
						System.out.println("제목: " + t.getTitle());
						System.out.println("장르: " + t.getGenre());
						System.out.println("감독: " + t.getDirector());
					}
				}
			}
			else if (menu.equals("3")) {
				// 전체 목록 출력
				System.out.println("=== 등록된 전체 비디오 목록 ===");
				for (int i = 0; i < videoStorage.size(); i++) {
					VideoTitle t = (VideoTitle) videoStorage.get(i);
					System.out.println("[" + i + "] " + t.getTitle()
							+ " / " + t.getGenre()
							+ " / " + t.getDirector());
				}
			}
			else if (menu.equals("4")) {
				// 비디오 삭제
				System.out.println("=== 삭제하실 비디오의 번호를 선택하세요 ===");
				// 전체 목록 출력
				for (int i = 0; i < videoStorage.size(); i++) {
					VideoTitle t = (VideoTitle) videoStorage.get(i);
					System.out.println("[" + i + "] " + t.getTitle()
							+ " / " + t.getGenre()
							+ " / " + t.getDirector());
				}
				// 사용자 입력 받기
				System.out.print("번호: ");
				String videoNumToDelete = sc.nextLine();
				// 입력받은 문자열을 정수 타입으로 변환
				int indexToDelete = Integer.parseInt(videoNumToDelete);
				// 비디오 저장소에서 삭제
				videoStorage.remove(indexToDelete);
			}
			else if (menu.equals("5")) {
				System.out.print("삭제할 비디오의 제목: ");
				// 사용자로부터 삭제할 비디오의 제목 입력받기
				String title = sc.nextLine();
				for (int i = 0; i < videoStorage.size(); i++) {
					VideoTitle t = (VideoTitle) videoStorage.get(i);
					// 입력한 제목과 t의 제목이 같은지?
					if (title.equals(t.getTitle())) {
						System.out.println(">>> " + t.getTitle()
								+ " / " + t.getGenre()
								+ " / " + t.getDirector()
								+ " <<< 비디오를 삭제합니다.");
						// 삭제
						videoStorage.remove(t);
						i--;
					}
				}
			}
			else if (menu.equals("0")) {
				System.out.print("정말 종료하시겠습니까? (y/n): ");
				String confirm = sc.nextLine();
				if (confirm.equalsIgnoreCase("Y")) {
					break;
				}
			}
			else {
				System.out.println("메뉴를 잘못 선택하셨습니다. 다시 선택하세요.");
			}
			System.out.println();
		}
		
	}
	
}
